Public Class Oracao
    Implements IComparable(Of Oracao)

    Private _integraResumo As Boolean
    Public Property integraResumo() As Boolean
        Get
            Return _integraResumo
        End Get
        Set(ByVal value As Boolean)
            _integraResumo = value
        End Set
    End Property

    Private _ordem As Integer
    Public Property ordem() As Integer
        Get
            Return _ordem
        End Get
        Set(ByVal value As Integer)
            _ordem = value
        End Set
    End Property

    Private _frase As String
    Public Property frase() As String
        Get
            Return _frase
        End Get
        Set(ByVal value As String)
            _frase = value
        End Set
    End Property

    Private _pontuacao As Single
    Public Property pontuacao() As Single
        Get
            Return _pontuacao
        End Get
        Set(ByVal value As Single)
            _pontuacao = value
        End Set
    End Property

    Public Sub AdicionaPontuacao(ByVal pontos As Single)
        _pontuacao += pontos
    End Sub

    Private _counterPalavras As Integer
    Public Property CounterPalavras() As Integer
        Get
            Return _counterPalavras
        End Get
        Set(ByVal value As Integer)
            _counterPalavras = value
        End Set
    End Property

    Public Sub CalculeLengthIndex()
        _pontuacao = _pontuacao / _counterPalavras
    End Sub

    Public Overloads Function CompareTo(ByVal other As Oracao) As Integer _
        Implements IComparable(Of Oracao).CompareTo

        If _pontuacao < other._pontuacao Then
            Return -1
        ElseIf _pontuacao = other._pontuacao Then
            Return 0
        ElseIf _pontuacao > other._pontuacao Then
            Return 1
        End If
    End Function
End Class
